Skip to content

Keep the test results of a failed CI job - #216

Merged
MarkusPaulsen merged 1 commit into
mainfrom
chore/ci-test-artefacts
Aug 26, 2026
Merged

Keep the test results of a failed CI job#216
MarkusPaulsen merged 1 commit into
mainfrom
chore/ci-test-artefacts

Conversation

@MarkusPaulsen

Copy link
Copy Markdown
Collaborator

Summary

A test job that goes red keeps its coverage data but threw away its test results. The whole surefire-reports directory is now uploaded from every test job, so a failed matrix cell leaves something a reviewer can open.

Linked issues

No linked issues

1. Problem

The three test jobs of the Maven workflow upload target/jacoco.exec with if: !cancelled(), on the stated grounds that a failed step is exactly the run whose data is worth keeping. The test results of that same failure were not uploaded at all.

The consequence is that a red matrix cell leaves only the job log. That log expires, cannot be searched across runs, and cannot be fed to anything. Nothing is at fault in Ares itself; this is a gap in what CI keeps.

2. Improvement from the user's perspective

No Improvement from the user's perspective

3. Improvement from the maintainer's perspective

A maintainer looking at a failed run can download the results of the run that failed instead of reading the log. The whole directory is uploaded rather than *.xml, because a fork that crashed or ran into forkedProcessTimeoutInSeconds leaves a .dump, .dumpstream or .txt behind and often no XML at all, which is precisely the case the artefact exists for.

4. Testing manual

Prerequisites

  1. None beyond access to the Actions tab of this repository.

Steps

Not reproducible from an exercise. This changes a CI workflow only, so a reviewer verifies it from a workflow run.

  1. Open the "Java CI with Maven" run for this pull request.
  2. Look at the artefacts of the run.

Expected result

Step 2 lists test-results-unit-tests, test-results-core-integration-tests and one test-results-<slug> per matrix cell, alongside the existing jacoco-exec-* artefacts. Each contains the contents of target/surefire-reports/.

Negative case (what must still be rejected)

Nothing about what Ares blocks changes here. The workflow must still fail when a test fails; the upload runs with if: !cancelled() and must not mask a failing step.

Modes exercised

No mode-specific behaviour changed.

  • ArchUnit + AspectJ
  • ArchUnit + instrumentation
  • WALA + AspectJ
  • WALA + instrumentation

5. Test case coverage regarding this PR

No production Java code changed

Breaking changes and migration

No breaking changes or migration.

Checklist

  • CI is green, or every remaining failure is explained above.
  • No secrets, tokens or absolute local paths are contained in the diff.

Review progress

  • Code review
  • Manual test

The test jobs upload their coverage data even when a step failed, because that is the
run the data is most useful for. The test results of that same failure were not kept,
so the only trace of a red matrix cell was the job log.

The whole surefire-reports directory is uploaded rather than *.xml: a fork that crashed
or hit forkedProcessTimeoutInSeconds leaves a .dump or .dumpstream behind and frequently
no XML at all, which is exactly the case worth keeping.
@MarkusPaulsen
MarkusPaulsen requested a review from a team August 26, 2026 15:13
@MarkusPaulsen
MarkusPaulsen requested review from a team and krusche as code owners August 26, 2026 15:13
@coderabbitai

coderabbitai Bot commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 8c8d27c8-7ff6-429f-90b2-6e7b6bd68a75


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@MarkusPaulsen
MarkusPaulsen merged commit 1ec133c into main Aug 26, 2026
1 of 2 checks passed
@MarkusPaulsen
MarkusPaulsen deleted the chore/ci-test-artefacts branch August 26, 2026 15:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant